<?php if ( ! defined("BASEPATH")) exit("No direct script access allowed");

class Compradores extends CI_Controller {
		
	public function __construct(){
		parent::__construct();
		init_painel();
	}

	public function index(){
		$this->gerenciar();
	}
	
	public function cadastrar(){
		$this->load->model('cidades_model');
		esta_logado();
		$this->form_validation->set_message('is_unique', 'Este %s já está cadastrado no sistema');
		$this->form_validation->set_message('matches', 'O campo %s está diferente do campo %s');
		$this->form_validation->set_rules('nome', 'NOME', 'trim|required|ucwords');
		$this->form_validation->set_rules('email', 'EMAIL', 'trim|valid_email|is_unique[compradores.email]|strtolower');
		$this->form_validation->set_rules('cpf', 'CPF', 'required|is_unique[compradores.cpf]');
		$this->form_validation->set_rules('telefone', 'TELEFONE', '');
		$this->form_validation->set_rules('celular', 'CELULAR', '');
		$this->form_validation->set_rules('endereco', 'ENDEREÇO', 'trim');
		$this->form_validation->set_rules('numero', 'NUMERO', 'numeric');
		$this->form_validation->set_rules('bairro', 'BAIRRO', 'trim');
		$this->form_validation->set_rules('complemento', 'COMPLEMENTO', 'trim');
		$this->form_validation->set_rules('intervalo_condicionais', 'QUANTIDADE DE DIAS PARA CONDICIONAIS', '');
		if ($this->form_validation->run()==TRUE):
			if(valida_cpf($this->input->post('cpf', TRUE))== FALSE):
				set_msg('msgerro', 'O campo CPF é inválido, favor inserir o valor de cpf válido.', 'erro');
				redirect(base_url('painel/compradores/cadastrar'));
			endif;
			$dados = elements(array('nome', 'email', 'cpf', 'sexo', 'endereco', 'numero', 'bairro', 'complemento', 'observacoes'), $this->input->post(NULL, TRUE));
			$condicional_auto = $this->input->post('condicional_auto');
			
			/* Telefone */
			$telefone = $this->input->post('telefone', TRUE);
			$telefone = str_replace('-', '', $telefone);
			$telefone = str_replace('(', '', $telefone);
			$telefone = str_replace(')', '', $telefone);
			$dados['telefone'] = $telefone;
			
			/* Celular */
			$celular = $this->input->post('celular', TRUE);
			$celular = str_replace('-', '', $celular);
			$celular = str_replace('(', '', $celular);
			$celular = str_replace(')', '', $celular);
			$dados['celular'] = $celular;
			
			if($condicional_auto == 1):
				$dados['intervalo_condicionais'] = $this->input->post('intervalo_condicionais');
			endif;
			
			$dados['condicional_auto'] = $condicional_auto;
			$dados['limite_credito'] = modificaDinheiroBanco($this->input->post('limite_credito', TRUE));
			$dados['data_nascimento'] = dataBanco($this->input->post('data', TRUE));
			$dados['id_cidade'] = $this->input->post('cidade', TRUE);
			$dados['created'] = date('Y-m-d H:i:s');
			
			global $email_site;
			$nome = $this->input->post('nome');
			$email = $this->input->post('email');
			
			$id_comprador = $this->compradores->do_insert($dados, FALSE);
			
			/* Inserir na Tabela Compradores_Atributos */
			$atributos = $this->atributo->get_all()->result();
			foreach($atributos as $linha_atributos):
				$id_atributo = $this->input->post($linha_atributos->id);
				if($id_atributo != '0' || $id_atributo != NULL):
					$dados2['id_comprador'] = $id_comprador;
					$dados2['id_atributo'] = $id_atributo;
					$this->compradores->do_insert_atributos($dados2, FALSE);
				endif;
			endforeach;
			
			if($email != NULL && $email != ''):
				/* Email Cliente */
				$this->sistema->enviar_email($email, $email_site, 'Bem Vindo à Vanessa Said', 'Mensagem de Sucesso');
			endif;
			
			/* Email Administrador */
			$this->sistema->enviar_email($email_site, $email_site, 'Cliente cadastrado no sistema', 'Mensagem de Sucesso');
			
			set_msg('msgok', 'Cadastro efetuado com sucesso.', 'sucesso');
			redirect(base_url('painel/compradores/cadastrar'));
		endif;
		$data = array(
			'tela' => 'cadastrar'
		);
		set_tema('footerinc', load_js(array('maskmoney/jquery.maskMoney.min', 'maskmoney/maskmoney-script.min', 'maskedinput/jquery.maskedinput.min', 'maskedinput/maskedinput-script.min', 'cidadesEstado.min', 'select2/select2.min', 'select2/select2_locale_pt-BR.min', 'select2/select2-script.min', 'datepicker/foundation-datepicker.min', 'datepicker/datepicker-script.min', 'app', 'valida_cpf')));
		set_tema('headerinc', load_css(array('select2/select2-foundation5.min', 'datepicker/foundation-datepicker.min')));
		set_tema('titulo', 'Cadastro de usuários');
		set_tema('conteudo', load_modulo('painel', 'compradores', $data));
		load_template();
	}

	public function gerenciar(){
		esta_logado();
		$data = array(
			'tela'	=> 'gerenciar',
			'query'	=> $query = $this->compradores->get_all()->result()
		);
		set_tema('headerinc', load_css(array('datatables/dataTables.foundation.min')));
		set_tema('footerinc', load_js(array('datatables/jquery.dataTables.min', 'datatables/dataTables.foundation.min', 'app.min')));
		set_tema('titulo', 'Listagem de compradores');
		set_tema('conteudo', load_modulo('painel', 'compradores', $data));
		load_template();
	}
	
	public function alterar_senha(){
		esta_logado();
		$this->form_validation->set_message('matches', 'O campo %s está diferente do campo %s');
		$this->form_validation->set_rules('senha', 'SENHA', 'trim|required|min_length[4]|strtolower');
		$this->form_validation->set_rules('senha2', 'REPITA A SENHA', 'trim|required|min_length[4]|strtolower|matches[senha]');
		if ($this->form_validation->run()==TRUE):
			$dados['senha'] = md5($this->input->post('senha', TRUE));
			$usuario = $this->compradores->get_byid($this->session->userdata('user_id'))->row()->login;
			$this->compradores->do_update($dados, array('id'=>$this->input->post('idcomprador', TRUE)),FALSE);
			auditoria('Edição de Senha', 'O usuário "'.$usuario.'" editou sua senha');
			redirect(current_url());
		endif;
		$data = array(
			'tela' => 'alterar_senha',
			'idcomprador' => $idcomprador = $this->uri->segment(4)
		);
		set_tema('footerinc', load_js(array('app.min')));
		set_tema('titulo', 'Alteração de senha');
		set_tema('conteudo', load_modulo('painel', 'compradores', $data));
		load_template();
	}
	
	public function editar(){
		esta_logado();
		$idcomprador = $this->uri->segment(4);
		$this->load->model('cidades_model', 'cidades');
		$this->form_validation->set_message('is_unique', 'Este %s já está cadastrado no sistema');
		$this->form_validation->set_message('matches', 'O campo %s está diferente do campo %s');
		$this->form_validation->set_rules('nome', 'NOME', 'trim|required|ucwords');
		$this->form_validation->set_rules('email', 'EMAIL', 'trim|valid_email|strtolower');
		$this->form_validation->set_rules('cpf', 'CPF', '');
		$this->form_validation->set_rules('telefone', 'TELEFONE', '');
		$this->form_validation->set_rules('celular', 'CELULAR', '');
		$this->form_validation->set_rules('endereco', 'ENDEREÇO', 'trim');
		$this->form_validation->set_rules('numero', 'NUMERO', 'numeric');
		$this->form_validation->set_rules('bairro', 'BAIRRO', 'trim');
		$this->form_validation->set_rules('complemento', 'COMPLEMENTO', 'trim');
		$this->form_validation->set_rules('intervalo_condicionais', 'QUANTIDADE DE DIAS PARA CONDICIONAIS', '');
		if ($this->form_validation->run()==TRUE):
			$id_comprador = $this->input->post('idcompradores', TRUE);
			$dados = elements(array('nome', 'sexo', 'endereco', 'numero', 'bairro', 'complemento', 'intervalo_condicionais', 'observacoes'), $this->input->post(NULL, TRUE));
			$condicional_auto = $this->input->post('condicional_auto');
			
			/* Telefone */
			$telefone = $this->input->post('telefone', TRUE);
			$telefone = str_replace('-', '', $telefone);
			$telefone = str_replace('(', '', $telefone);
			$telefone = str_replace(')', '', $telefone);
			$dados['telefone'] = $telefone;
			
			/* Celular */
			$celular = $this->input->post('celular', TRUE);
			$celular = str_replace('-', '', $celular);
			$celular = str_replace('(', '', $celular);
			$celular = str_replace(')', '', $celular);
			$dados['celular'] = $celular;
			
			if($condicional_auto == 1):
				$dados['intervalo_condicionais'] = $this->input->post('intervalo_condicionais');
			endif;
			
			$dados['condicional_auto'] = $condicional_auto;
			$dados['limite_credito'] = modificaDinheiroBanco($this->input->post('limite_credito', TRUE));
			$dados['data_nascimento'] = dataBanco($this->input->post('data', TRUE));
			$dados['id_cidade'] = $this->input->post('cidade', TRUE);
			$this->compradores->do_update($dados, array('id'=>$id_comprador), FALSE);
			
			/* Deleter todos os atributos do Cliente */
			$this->compradores->do_delete_atributo(array('id_comprador'=>$id_comprador), FALSE);
			
			/* Inserir na Tabela Compradores_Atributos */
			$atributos = $this->atributo->get_all()->result();
			foreach($atributos as $linha_atributos):
				$id_atributo = $this->input->post($linha_atributos->id);
				if($id_atributo != '0' || $id_atributo != NULL):
					$dados2['id_comprador'] = $id_comprador;
					$dados2['id_atributo'] = $id_atributo;
					$this->compradores->do_insert_atributos($dados2, FALSE);
				endif;
			endforeach;
			
			auditoria('Edição de Comprador', 'O perfil de "'.$this->input->post('nome', TRUE).'" foi editado.');
			set_msg('msgok', 'Alteração dos dados efetuado com sucesso.', 'sucesso');
			redirect(current_url());
		endif;
		$data = array(
			'tela'		=> 'editar',
			'idcomprador'	=> $idcomprador,
			'query'		=> $this->compradores->get_byid($idcomprador)->row()
		);
		set_tema('footerinc', load_js(array('maskmoney/jquery.maskMoney.min', 'maskmoney/maskmoney-script.min', 'maskedinput/jquery.maskedinput.min', 'maskedinput/maskedinput-script.min', 'cidadesEstado.min', 
			'select2/select2.min', 'select2/select2_locale_pt-BR.min', 'select2/select2-script.min', 'datepicker/foundation-datepicker.min', 'datepicker/datepicker-script.min', 'app')));
		set_tema('headerinc', load_css(array('select2/select2-foundation5.min', 'datepicker/foundation-datepicker.min')));
		set_tema('titulo', 'Alteração de compradores');
		set_tema('conteudo', load_modulo('painel', 'compradores', $data));
		load_template();
	}
	
	public function excluir(){
		esta_logado();
		if (is_admin(TRUE)):
			$idcomprador = $this->uri->segment(4);
			if ($idcomprador != NULL):
				$query = $this->compradores->get_byid($idcomprador);
				if ($query->num_rows()==1):
					$query = $query->row();
					$this->compradores->do_delete(array('id'=>$query->id), FALSE);
				else:
					set_msg('msgerro', 'Comprador não encontrado para exclusão', 'erro');
				endif;
				/* Exclusão de Atributos */
				$atributos = $this->compradores->get_byid_atributo($idcomprador, 'id_comprador')->result();
				if($atributos != NULL):
					foreach($atributos as $linha_atributos):
						$this->compradores->do_delete_atributo(array('id_comprador'=>$linha_atributos->id_comprador), FALSE);
					endforeach;
				endif;
			else:
				set_msg('msgerro', 'Escolha um comprador para excluir', 'erro');
			endif;
		endif;
		redirect('painel/compradores/gerenciar');
	}
	
}

/* End of file compradores.php */
/* Location: ./application/controllers/compradores.php */
